package com.lekang.domain;

import java.math.BigDecimal;
import java.util.List;

import com.lekang.dto.BedDTO;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lekang.common.annotation.Excel;
import com.lekang.common.core.domain.BaseEntity;

/**
 * 房间对象 room
 * 
 * @author ruoyi
 * @date 2025-10-21
 */
public class Room extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 房间号 */
    @Excel(name = "房间号")
    private String roomNo;

    /** 房间类型外键 */
    @Excel(name = "房间类型外键")
    private Long roomTypeId;

    /** 楼层编号外键 */
    @Excel(name = "楼层编号外键")
    private Long floorId;

    /** 总床位数 */
    @Excel(name = "总床位数")
    private Long totalBeds;

    /** 入住床位数 */
    @Excel(name = "入住床位数")
    private Long occupiedBeds;

    /** 入住率 */
    @Excel(name = "入住率")
    private BigDecimal occupancyRate;

    /** 逻辑删除 */
    @Excel(name = "逻辑删除")
    private Long isDeleted;

    /** 额外字段1 */
    @Excel(name = "额外字段1")
    private String extraField1;

    /** 额外字段2 */
    @Excel(name = "额外字段2")
    private String extraField2;


    /** 房间关联的床位列表 */
    private List<BedDTO> beds;

    public List<BedDTO> getBeds() {
        return beds;
    }

    public void setBeds(List<BedDTO> beds) {
        this.beds = beds;
    }

    private String roomTypeName;

    public String getRoomTypeName() {
        return roomTypeName;
    }

    public void setRoomTypeName(String roomTypeName) {
        this.roomTypeName = roomTypeName;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setRoomNo(String roomNo) 
    {
        this.roomNo = roomNo;
    }

    public String getRoomNo() 
    {
        return roomNo;
    }

    public void setRoomTypeId(Long roomTypeId) 
    {
        this.roomTypeId = roomTypeId;
    }

    public Long getRoomTypeId() 
    {
        return roomTypeId;
    }

    public void setFloorId(Long floorId) 
    {
        this.floorId = floorId;
    }

    public Long getFloorId() 
    {
        return floorId;
    }

    public void setTotalBeds(Long totalBeds) 
    {
        this.totalBeds = totalBeds;
    }

    public Long getTotalBeds() 
    {
        return totalBeds;
    }

    public void setOccupiedBeds(Long occupiedBeds) 
    {
        this.occupiedBeds = occupiedBeds;
    }

    public Long getOccupiedBeds() 
    {
        return occupiedBeds;
    }

    public void setOccupancyRate(BigDecimal occupancyRate) 
    {
        this.occupancyRate = occupancyRate;
    }

    public BigDecimal getOccupancyRate() 
    {
        return occupancyRate;
    }

    public void setIsDeleted(Long isDeleted) 
    {
        this.isDeleted = isDeleted;
    }

    public Long getIsDeleted() 
    {
        return isDeleted;
    }

    public void setExtraField1(String extraField1) 
    {
        this.extraField1 = extraField1;
    }

    public String getExtraField1() 
    {
        return extraField1;
    }

    public void setExtraField2(String extraField2) 
    {
        this.extraField2 = extraField2;
    }

    public String getExtraField2() 
    {
        return extraField2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("roomNo", getRoomNo())
            .append("roomTypeId", getRoomTypeId())
            .append("floorId", getFloorId())
            .append("totalBeds", getTotalBeds())
            .append("occupiedBeds", getOccupiedBeds())
            .append("occupancyRate", getOccupancyRate())
            .append("isDeleted", getIsDeleted())
            .append("extraField1", getExtraField1())
            .append("extraField2", getExtraField2())
            .toString();
    }
}
